[INFO] cloning repository https://github.com/joaofelipegalvao/todo-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/joaofelipegalvao/todo-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoaofelipegalvao%2Ftodo-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoaofelipegalvao%2Ftodo-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 83b2cfd741b5578dd72100c81b887597dbbdf946
[INFO] testing joaofelipegalvao/todo-cli against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoaofelipegalvao%2Ftodo-cli" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/joaofelipegalvao/todo-cli
[INFO] finished tweaking git repo https://github.com/joaofelipegalvao/todo-cli
[INFO] tweaked toml for git repo https://github.com/joaofelipegalvao/todo-cli written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/joaofelipegalvao/todo-cli on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/joaofelipegalvao/todo-cli already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded scanlex v0.1.4
[INFO] [stderr]   Downloaded chrono-english v0.1.8
[INFO] [stderr]   Downloaded ureq v3.2.0
[INFO] [stderr]   Downloaded edit v0.1.5
[INFO] [stderr]   Downloaded toml v1.0.3+spec-1.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 17a07efe6d993207f0081807305ca0fb11717a1c8f3e0f3bae8c689cd75787cf
[INFO] running `Command { std: "docker" "start" "-a" "17a07efe6d993207f0081807305ca0fb11717a1c8f3e0f3bae8c689cd75787cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "17a07efe6d993207f0081807305ca0fb11717a1c8f3e0f3bae8c689cd75787cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17a07efe6d993207f0081807305ca0fb11717a1c8f3e0f3bae8c689cd75787cf", kill_on_drop: false }`
[INFO] [stdout] 17a07efe6d993207f0081807305ca0fb11717a1c8f3e0f3bae8c689cd75787cf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d10148cba5ca9ffd8c0b19e0732747ba6883ba6096a7137146439c19ce81176b
[INFO] running `Command { std: "docker" "start" "-a" "d10148cba5ca9ffd8c0b19e0732747ba6883ba6096a7137146439c19ce81176b", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.36.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ureq-proto v0.5.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling scanlex v0.1.4
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling edit v0.1.5
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling toml v1.0.3+spec-1.1.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling chrono-english v0.1.8
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling ureq v3.2.0
[INFO] [stderr]    Compiling rusqlite v0.38.0
[INFO] [stderr]    Compiling rustodo v2.30.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "d10148cba5ca9ffd8c0b19e0732747ba6883ba6096a7137146439c19ce81176b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d10148cba5ca9ffd8c0b19e0732747ba6883ba6096a7137146439c19ce81176b", kill_on_drop: false }`
[INFO] [stdout] d10148cba5ca9ffd8c0b19e0732747ba6883ba6096a7137146439c19ce81176b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf1d022abfb72191660a89c6e71d052a9f5572ff427910a4649077a2d860d766
[INFO] running `Command { std: "docker" "start" "-a" "cf1d022abfb72191660a89c6e71d052a9f5572ff427910a4649077a2d860d766", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustodo v2.30.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.30s
[INFO] running `Command { std: "docker" "inspect" "cf1d022abfb72191660a89c6e71d052a9f5572ff427910a4649077a2d860d766", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf1d022abfb72191660a89c6e71d052a9f5572ff427910a4649077a2d860d766", kill_on_drop: false }`
[INFO] [stdout] cf1d022abfb72191660a89c6e71d052a9f5572ff427910a4649077a2d860d766
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b5f92a1b39281672e8a3c67167e8232a27df8f826b74652c453dce2a57a94534
[INFO] running `Command { std: "docker" "start" "-a" "b5f92a1b39281672e8a3c67167e8232a27df8f826b74652c453dce2a57a94534", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.51s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rustodo-39b7bc87e8115505)
[INFO] [stdout] 
[INFO] [stdout] running 217 tests
[INFO] [stdout] test commands::note::add::tests::test_note_add_creates_note ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_invalid_task_id_fails ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_no_body_fails ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_with_existing_project ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_with_language ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_with_new_project_creates_it ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_with_tags ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_multiple_increments_count ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_with_title ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_normalizes_tags_to_existing ... ok
[INFO] [stdout] test commands::note::add::tests::test_note_add_linked_to_task ... ok
[INFO] [stdout] test commands::note::remove::tests::test_note_remove_invalid_id_returns_error ... ok
[INFO] [stdout] test commands::note::remove::tests::test_note_remove_skips_deleted_in_id_resolution ... ok
[INFO] [stdout] test commands::note::remove::tests::test_note_remove_soft_deletes ... ok
[INFO] [stdout] test commands::portability::tests::test_import_nonexistent_file_fails ... ok
[INFO] [stdout] test commands::project::add::tests::test_project_add_creates_project ... ok
[INFO] [stdout] test commands::project::add::tests::test_project_add_duplicate_name_returns_error ... ok
[INFO] [stdout] test commands::note::remove::tests::test_note_remove_does_not_affect_other_notes ... ok
[INFO] [stdout] test commands::project::add::tests::test_project_add_duplicate_case_insensitive ... ok
[INFO] [stdout] test commands::project::done::tests::test_project_done_invalid_id_returns_error ... ok
[INFO] [stdout] test commands::project::add::tests::test_project_add_with_difficulty ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_difficulty ... ok
[INFO] [stdout] test commands::project::add::tests::test_project_add_with_tech ... ok
[INFO] [stdout] test commands::project::done::tests::test_project_done_does_not_affect_other_projects ... ok
[INFO] [stdout] test commands::portability::tests::test_import_repairs_dangling_project_id ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_empty_name_fails ... ok
[INFO] [stdout] test commands::project::done::tests::test_project_done_already_completed_is_idempotent ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_add_tech ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_clear_tech ... ok
[INFO] [stdout] test commands::portability::tests::test_import_replace_clears_existing ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_remove_tech ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_undone ... ok
[INFO] [stdout] test commands::project::remove::tests::test_project_remove_clears_note_project_id ... ok
[INFO] [stdout] test commands::project::remove::tests::test_project_remove_clears_task_project_id ... ok
[INFO] [stdout] test commands::portability::tests::test_import_restores_tasks ... ok
[INFO] [stdout] test commands::project::done::tests::test_project_done_marks_completed ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_name ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_no_changes_is_ok ... ok
[INFO] [stdout] test commands::project::remove::tests::test_project_remove_does_not_affect_others ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_done ... ok
[INFO] [stdout] test commands::portability::tests::test_export_contains_tasks ... ok
[INFO] [stdout] test commands::project::edit::tests::test_project_edit_invalid_id_fails ... ok
[INFO] [stdout] test commands::project::remove::tests::test_project_remove_invalid_id_fails ... ok
[INFO] [stdout] test commands::project::undone::tests::test_project_undone_already_pending_is_idempotent ... ok
[INFO] [stdout] test commands::project::undone::tests::test_project_undone_invalid_id_returns_error ... ok
[INFO] [stdout] test commands::project::undone::tests::test_project_undone_marks_pending ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_creates_resource ... ok
[INFO] [stdout] test commands::portability::tests::test_export_creates_file ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_deleted_title_allows_new ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_normalizes_tags_to_existing ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_with_description ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_with_type ... ok
[INFO] [stdout] test commands::search::tests::test_search_case_insensitive ... ok
[INFO] [stdout] test commands::search::tests::test_search_finds_project_by_name ... ok
[INFO] [stdout] test commands::search::tests::test_search_finds_note_by_body ... ok
[INFO] [stdout] test commands::search::tests::test_search_finds_task_by_text ... ok
[INFO] [stdout] test commands::search::tests::test_search_nonexistent_project_fails ... ok
[INFO] [stdout] test commands::search::tests::test_search_tag_filter_no_match_fails ... ok
[INFO] [stdout] test commands::search::tests::test_search_status_pending_excludes_done ... ok
[INFO] [stdout] test commands::stats_history::tests::test_stats_history_clear_all_is_ok ... ok
[INFO] [stdout] test commands::search::tests::test_search_with_tag_filter ... ok
[INFO] [stdout] test commands::search::tests::test_search_with_project_filter ... ok
[INFO] [stdout] test commands::project::add::tests::test_project_add_deleted_project_allows_reuse_of_name ... ok
[INFO] [stdout] test commands::stats_history::tests::test_stats_history_clear_requires_flag ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_multiple_increments_count ... ok
[INFO] [stdout] test commands::search::tests::test_search_finds_resource_by_title ... ok
[INFO] [stdout] test commands::search::tests::test_search_no_results_fails ... ok
[INFO] [stdout] test commands::stats_history::tests::test_stats_history_no_activity_is_ok ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_with_url ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_empty_text_fails ... ok
[INFO] [stdout] test commands::stats_history::tests::test_stats_history_with_events_is_ok ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_creates_task ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_whitespace_only_text_fails ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_normalizes_tags_to_existing ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_with_project_creates_project ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_with_existing_project_reuses_it ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_with_recurrence ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_multiple_increments_count ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_with_priority ... ok
[INFO] [stdout] test commands::task::clear::tests::test_clear_does_not_remove_already_deleted ... ok
[INFO] [stdout] test commands::task::clear::tests::test_clear_empty_storage_is_ok ... ok
[INFO] [stdout] test commands::task::clear::tests::test_clear_soft_deletes_all_tasks ... ok
[INFO] [stdout] test commands::task::clear::tests::test_clear_unlinks_note_task_ids ... ok
[INFO] [stdout] test commands::task::done::tests::test_done_invalid_id_returns_error ... ok
[INFO] [stdout] test commands::task::done::tests::test_done_does_not_affect_other_tasks ... ok
[INFO] [stdout] test commands::task::clear::tests::test_clear_preserves_notes_themselves ... ok
[INFO] [stdout] test commands::task::done::tests::test_done_already_completed_returns_error ... ok
[INFO] [stdout] test commands::task::done::tests::test_done_marks_task_completed ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_clear_due ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_clear_project_already_none_no_changes ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_clear_project ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_clear_tags_already_empty_no_changes ... ok
[INFO] [stdout] test commands::task::done::tests::test_done_skips_deleted_tasks_in_id_resolution ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_empty_text_fails ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_add_tag ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_clear_due_already_none_no_changes ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_add_duplicate_tag_no_changes ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_clear_tags ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_invalid_id_returns_error ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_same_priority_no_changes ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_remove_nonexistent_tag_fails ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_remove_tag ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_same_text_no_changes ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_no_args_no_changes ... ok
[INFO] [stdout] test commands::task::add::tests::test_add_with_tags ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_skips_deleted_in_id_resolution ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_by_tag ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_priority ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_by_priority ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_pending ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_by_nonexistent_tag_fails ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_by_project ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_done ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_text ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_empty_fails ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_excludes_deleted_tasks ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_filter_pending_no_pending_fails ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_shows_all_tasks ... ok
[INFO] [stdout] test commands::task::list::tests::test_list_sort_by_priority ... ok
[INFO] [stdout] test commands::task::remove::tests::test_remove_skips_deleted_in_id_resolution ... ok
[INFO] [stdout] test commands::task::remove::tests::test_remove_invalid_id_returns_error ... ok
[INFO] [stdout] test commands::portability::tests::test_export_import_roundtrip_with_all_entities ... ok
[INFO] [stdout] test commands::task::remove::tests::test_remove_soft_deletes_task ... ok
[INFO] [stdout] test models::project::tests::test_resolve_creates_new_project ... ok
[INFO] [stdout] test commands::task::remove::tests::test_remove_clears_note_task_id ... ok
[INFO] [stdout] test commands::task::undone::tests::test_undone_invalid_id_returns_error ... ok
[INFO] [stdout] test models::project::tests::test_resolve_deduplicates_across_calls ... ok
[INFO] [stdout] test commands::task::remove::tests::test_remove_does_not_affect_other_tasks ... ok
[INFO] [stdout] test commands::task::undone::tests::test_undone_does_not_affect_other_tasks ... ok
[INFO] [stdout] test commands::task::undone::tests::test_undone_already_pending_returns_error ... ok
[INFO] [stdout] test commands::task::undone::tests::test_undone_marks_task_pending ... ok
[INFO] [stdout] test models::project::tests::test_resolve_is_case_insensitive ... ok
[INFO] [stdout] test models::task::tests::test_count_by_project_excludes_deleted ... ok
[INFO] [stdout] test models::task::tests::test_daily_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_count_by_project_basic ... ok
[INFO] [stdout] test models::task::tests::test_blocking_deps_returns_pending_only ... ok
[INFO] [stdout] test models::task::tests::test_detect_no_cycle ... ok
[INFO] [stdout] test models::task::tests::test_detect_cycle_direct ... ok
[INFO] [stdout] test models::task::tests::test_is_blocked_completed_dep ... ok
[INFO] [stdout] test models::task::tests::test_detect_transitive_cycle ... ok
[INFO] [stdout] test models::task::tests::test_deleted_at_none_on_new ... ok
[INFO] [stdout] test models::task::tests::test_is_blocked_no_deps ... ok
[INFO] [stdout] test models::task::tests::test_is_blocked_pending_dep ... ok
[INFO] [stdout] test models::task::tests::test_deps_not_propagated_to_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_count_by_project_case_insensitive ... ok
[INFO] [stdout] test models::task::tests::test_monthly_boundary_case ... ok
[INFO] [stdout] test models::task::tests::test_monthly_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_no_due_date_returns_none ... ok
[INFO] [stdout] test models::task::tests::test_no_recurrence_returns_none ... ok
[INFO] [stdout] test models::task::tests::test_project_preserved_in_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_recurrence_next_is_not_deleted ... ok
[INFO] [stdout] test models::task::tests::test_soft_delete_deleted_at_lte_updated_at ... ok
[INFO] [stdout] test models::task::tests::test_soft_delete_sets_deleted_at ... ok
[INFO] [stdout] test models::task::tests::test_updated_at_set_on_new ... ok
[INFO] [stdout] test models::task::tests::test_weekly_recurrence ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_all_tag_names ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_aggregates_across_entities ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_empty ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_ignores_deleted ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_tasks_only ... ok
[INFO] [stdout] test models::project::tests::test_resolve_ignores_deleted_projects ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_ties_broken_alphabetically ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_sorted_by_total_descending ... ok
[INFO] [stdout] test models::task::tests::test_mark_done_updates_timestamp ... ok
[INFO] [stdout] test models::task::tests::test_mark_undone_updates_timestamp ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_date_not_in_past_strict_past_fails ... ok
[INFO] [stdout] test models::task::tests::test_soft_delete_also_updates_updated_at ... ok
[INFO] [stdout] test commands::task::edit::tests::test_edit_updates_updated_at ... ok
[INFO] [stdout] test models::task::tests::test_touch_updates_timestamp ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_in_n_days ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_in_n_weeks ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_date_not_in_past_future_ok ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_month_day_format ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_next_week ... ok
[INFO] [stdout] test utils::date_parser::tests::test_lazy_lock_regex_reuse ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_in_n_months ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_strict_format ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_case_insensitive_match ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_tomorrow ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_today ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_exact_match_unchanged ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_case_insensitive_uppercase ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_fuzzy_match_longer_tag ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_no_false_positive_short_tags ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_fuzzy_match_typo ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_normalize_tags_multiple ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_normalize_tags_no_existing ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_uuid_visible_skips_deleted ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_index_out_of_range ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_index_returns_real_index ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_out_of_range ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_returns_correct_item ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_project_name_empty ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_no_match_new_tag ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_due_date ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_project_name_too_long ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_project_name_valid ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_recurrence ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_tags ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_existing ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_id ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_new ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_text ... ok
[INFO] [stdout] test utils::validation::tests::test_visible_indices_all_deleted ... ok
[INFO] [stdout] test utils::validation::tests::test_visible_indices_all_visible ... ok
[INFO] [stdout] test utils::validation::tests::test_visible_indices_excludes_deleted ... ok
[INFO] [stdout] test commands::project::remove::tests::test_project_remove_soft_deletes ... ok
[INFO] [stdout] test commands::resource::add::tests::test_resource_add_with_tags ... ok
[INFO] [stdout] test models::project::tests::test_resolve_finds_existing_project ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_date_not_in_past_past_fails ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_invalid ... ok
[INFO] [stdout] test storage::sqlite::tests::test_save_and_load_tasks ... ok
[INFO] [stdout] test storage::sqlite::tests::test_event_stats_all_months_present ... ok
[INFO] [stdout] test storage::sqlite::tests::test_soft_delete_preserved ... ok
[INFO] [stdout] test storage::sqlite::tests::test_record_and_load_events ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purged_events_survive_physical_delete ... ok
[INFO] [stdout] test storage::sqlite::tests::test_upsert_does_not_duplicate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 217 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/todo-9b53dbd79e6af0a7)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/helpers.rs (/opt/rustwide/target/debug/deps/helpers-26707583fedae8cd)
[INFO] [stderr]      Running tests/test_add_command.rs (/opt/rustwide/target/debug/deps/test_add_command-db0ba942952df4e2)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_add_simple_task ... ok
[INFO] [stdout] test test_add_multiple_tasks_preserves_order ... ok
[INFO] [stdout] test test_add_with_invalid_tags_fails ... ok
[INFO] [stdout] test test_add_task_with_all_metadata ... ok
[INFO] [stdout] test test_add_whitespace_only_text_fails ... ok
[INFO] [stdout] test test_add_empty_text_fails ... ok
[INFO] [stdout] test test_add_recurring_task_requires_due_date ... ok
[INFO] [stdout] test test_add_with_duplicate_tags_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_deps_command.rs (/opt/rustwide/target/debug/deps/test_deps_command-57fa8c8215896b48)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test test_deps_empty_storage ... ok
[INFO] [stdout] test test_deps_invalid_id_out_of_range ... ok
[INFO] [stdout] test test_add_self_dependency_fails ... ok
[INFO] [stdout] test test_deps_invalid_id_zero ... ok
[INFO] [stdout] test test_blocking_deps_returns_only_pending ... ok
[INFO] [stdout] test test_deps_partially_satisfied ... ok
[INFO] [stdout] test test_blocking_deps_empty_when_all_done ... ok
[INFO] [stdout] test test_deps_all_dependencies_satisfied ... ok
[INFO] [stdout] test test_edit_add_self_dependency_fails ... ok
[INFO] [stdout] test test_deps_task_required_by_others ... ok
[INFO] [stdout] test test_deps_task_with_completed_dependency ... ok
[INFO] [stdout] test test_deps_task_with_no_dependencies ... ok
[INFO] [stdout] test test_edit_remove_nonexistent_dependency_fails ... ok
[INFO] [stderr]      Running tests/test_done_commands.rs (/opt/rustwide/target/debug/deps/test_done_commands-5ae6a5ff00ca0793)
[INFO] [stdout] test test_edit_remove_existing_dependency ... ok
[INFO] [stdout] test test_deps_task_with_pending_dependency ... ok
[INFO] [stdout] test test_edit_clear_all_dependencies ... ok
[INFO] [stdout] test test_edit_transitive_cycle_fails ... ok
[INFO] [stdout] test test_recurrence_does_not_inherit_deps ... ok
[INFO] [stdout] test test_edit_duplicate_dependency_fails ... ok
[INFO] [stdout] test test_edit_no_cycle_on_valid_dep ... ok
[INFO] [stdout] test test_edit_direct_cycle_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_done_no_deps_works_normally ... ok
[INFO] [stdout] test test_done_unblocked_after_dep_completed ... ok
[INFO] [stdout] test test_done_unblocked_all_deps_completed ... ok
[INFO] [stdout] test test_done_chain_must_be_completed_in_order ... ok
[INFO] [stdout] test test_done_blocked_by_pending_dep ... ok
[INFO] [stdout] test test_done_blocked_by_one_of_multiple_deps ... ok
[INFO] [stderr]      Running tests/test_edit_command.rs (/opt/rustwide/target/debug/deps/test_edit_command-3511fdeac8e0f09c)
[INFO] [stdout] test test_done_already_completed_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_note_command.rs (/opt/rustwide/target/debug/deps/test_note_command-a4858f9ce73af34a)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_edit_priority ... ok
[INFO] [stdout] test test_edit_remove_specific_tag ... ok
[INFO] [stdout] test test_edit_add_and_remove_tags_simultaneously ... ok
[INFO] [stdout] test test_edit_clear_all_tags ... ok
[INFO] [stdout] test test_edit_add_tags_preserves_existing ... ok
[INFO] [stdout] test test_edit_due_date ... ok
[INFO] [stdout] test test_edit_clear_due_date ... ok
[INFO] [stdout] test test_edit_text ... ok
[INFO] [stdout] test test_edit_invalid_id ... ok
[INFO] [stdout] test test_edit_remove_nonexistent_tag_fails ... ok
[INFO] [stdout] test test_edit_add_invalid_tag_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test test_note_add_multiple ... ok
[INFO] [stdout] test test_note_add_simple ... ok
[INFO] [stderr]      Running tests/test_project_commands.rs (/opt/rustwide/target/debug/deps/test_project_commands-263fbed3c6b8c611)
[INFO] [stdout] test test_note_add_with_all_metadata ... ok
[INFO] [stdout] test test_note_clear_removes_all ... ok
[INFO] [stdout] test test_note_clear_empty_is_ok ... ok
[INFO] [stdout] test test_note_edit_add_tags ... ok
[INFO] [stdout] test test_note_edit_body ... ok
[INFO] [stdout] test test_note_edit_assign_project ... ok
[INFO] [stdout] test test_note_edit_clear_project ... ok
[INFO] [stdout] test test_note_edit_clear_language ... ok
[INFO] [stdout] test test_note_add_no_body_fails ... ok
[INFO] [stdout] test test_note_edit_clear_tags ... ok
[INFO] [stdout] test test_note_edit_clear_task ... ok
[INFO] [stdout] test test_note_edit_clear_title ... ok
[INFO] [stdout] test test_note_edit_invalid_id_fails ... ok
[INFO] [stdout] test test_note_edit_language ... ok
[INFO] [stdout] test test_note_edit_link_task ... ok
[INFO] [stdout] test test_note_edit_no_changes_is_ok ... ok
[INFO] [stdout] test test_note_edit_remove_tags ... ok
[INFO] [stdout] test test_note_edit_title ... ok
[INFO] [stdout] test test_note_list_all ... ok
[INFO] [stdout] test test_note_list_empty_is_ok ... ok
[INFO] [stdout] test test_note_list_filter_by_language ... ok
[INFO] [stdout] test test_note_list_filter_by_project ... ok
[INFO] [stdout] test test_note_remove_does_not_affect_others ... ok
[INFO] [stdout] test test_note_list_filter_by_tag ... ok
[INFO] [stdout] test test_note_remove_invalid_id_fails ... ok
[INFO] [stdout] test test_note_remove_soft_deletes ... ok
[INFO] [stdout] test test_note_remove_valid ... ok
[INFO] [stdout] test test_note_show_invalid_id_fails ... ok
[INFO] [stdout] test test_note_show_out_of_range_fails ... ok
[INFO] [stdout] test test_note_show_valid_id ... ok
[INFO] [stdout] test test_remove_resource_clears_note_resource_ids ... ok
[INFO] [stdout] test test_remove_task_clears_note_task_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test test_project_add_simple ... ok
[INFO] [stdout] test test_project_add_duplicate_fails ... ok
[INFO] [stdout] test test_project_add_with_metadata ... ok
[INFO] [stdout] test test_project_clear_empty_is_ok ... ok
[INFO] [stdout] test test_project_clear_removes_all ... ok
[INFO] [stdout] test test_project_clear_cleans_task_and_note_links ... ok
[INFO] [stdout] test test_project_add_multiple ... ok
[INFO] [stdout] test test_project_done ... ok
[INFO] [stdout] test test_project_done_invalid_id_fails ... ok
[INFO] [stdout] test test_project_edit_add_tech ... ok
[INFO] [stdout] test test_project_edit_difficulty ... ok
[INFO] [stdout] test test_project_edit_clear_tech ... ok
[INFO] [stdout] test test_project_edit_invalid_id_fails ... ok
[INFO] [stdout] test test_project_edit_no_changes_is_ok ... ok
[INFO] [stdout] test test_project_edit_name ... ok
[INFO] [stdout] test test_project_done_already_done_is_ok ... ok
[INFO] [stdout] test test_project_edit_remove_tech ... ok
[INFO] [stdout] test test_project_remove_clears_note_project_id ... ok
[INFO] [stdout] test test_project_remove_clears_task_project_id ... ok
[INFO] [stdout] test test_project_remove_does_not_affect_other_projects ... ok
[INFO] [stdout] test test_project_remove_invalid_id_fails ... ok
[INFO] [stdout] test test_project_remove_soft_deletes ... ok
[INFO] [stdout] test test_project_remove_valid ... ok
[INFO] [stdout] test test_project_show_invalid_id_fails ... ok
[INFO] [stdout] test test_project_show_out_of_range_fails ... ok
[INFO] [stdout] test test_project_show_valid_id ... ok
[INFO] [stdout] test test_project_undone ... ok
[INFO] [stdout] test test_project_undone_already_pending_is_ok ... ok
[INFO] [stdout] test test_project_undone_invalid_id_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stderr]      Running tests/test_projects_command.rs (/opt/rustwide/target/debug/deps/test_projects_command-1f355f0f17d735d4)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test test_add_empty_project_name_fails ... ok
[INFO] [stdout] test test_add_project_name_too_long_fails ... ok
[INFO] [stderr]      Running tests/test_purge_command.rs (/opt/rustwide/target/debug/deps/test_purge_command-7baa965ba22318dc)
[INFO] [stdout] test test_edit_assign_project ... ok
[INFO] [stdout] test test_add_project_name_exactly_max_length_ok ... ok
[INFO] [stdout] test test_edit_clear_project ... ok
[INFO] [stdout] test test_edit_change_project ... ok
[INFO] [stdout] test test_edit_no_change_when_same_project ... ok
[INFO] [stdout] test test_list_filter_by_nonexistent_project_fails ... ok
[INFO] [stdout] test test_list_filter_by_project_case_insensitive ... ok
[INFO] [stdout] test test_list_filter_by_project ... ok
[INFO] [stdout] test test_projects_empty_storage_fails ... ok
[INFO] [stdout] test test_list_filter_project_with_status ... ok
[INFO] [stdout] test test_list_filter_project_with_sort ... ok
[INFO] [stdout] test test_projects_mixed_with_and_without_project ... ok
[INFO] [stdout] test test_projects_all_tasks_completed ... ok
[INFO] [stdout] test test_projects_no_projects_fails ... ok
[INFO] [stdout] test test_projects_single_project ... ok
[INFO] [stdout] test test_projects_pending_and_done_counts ... ok
[INFO] [stdout] test test_projects_multiple_projects ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_purge_empty_storage_no_error ... ok
[INFO] [stdout] test test_purge_no_deleted_tasks_no_error ... ok
[INFO] [stdout] test test_purge_days_zero_removes_all_tombstones ... ok
[INFO] [stdout] test test_purge_high_days_threshold_keeps_recent_tombstones ... ok
[INFO] [stdout] test test_purge_mixed_active_and_tombstones ... ok
[INFO] [stdout] test test_purge_does_not_remove_active_tasks ... ok
[INFO] [stdout] test test_purge_dry_run_does_not_remove ... ok
[INFO] [stdout] test test_purge_days_zero_is_the_only_threshold_that_catches_new_tombstones ... ok
[INFO] [stdout] test test_purge_days_zero_removes_multiple_tombstones ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_recur_command.rs (/opt/rustwide/target/debug/deps/test_recur_command-287e3c6cf032ac0b)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_recur_invalid_id_fails ... ok
[INFO] [stdout] test test_norecur_invalid_id_fails ... ok
[INFO] [stdout] test test_recur_invalid_id_zero_fails ... ok
[INFO] [stdout] test test_norecur_task_without_recurrence_is_ok ... ok
[INFO] [stdout] test test_done_non_recurring_does_not_create_next ... ok
[INFO] [stdout] test test_recur_set_pattern ... ok
[INFO] [stdout] test test_done_recurring_monthly_creates_next ... ok
[INFO] [stdout] test test_norecur_removes_pattern ... ok
[INFO] [stdout] test test_norecur_skips_deleted_tasks ... ok
[INFO] [stdout] test test_done_recurring_weekly_creates_next ... ok
[INFO] [stdout] test test_recur_already_same_pattern_is_ok ... ok
[INFO] [stdout] test test_done_recurring_does_not_create_duplicate ... ok
[INFO] [stdout] test test_done_recurring_daily_creates_next ... ok
[INFO] [stdout] test test_recur_without_due_date_fails ... ok
[INFO] [stdout] test test_recur_update_pattern ... ok
[INFO] [stdout] test test_recur_skips_deleted_tasks ... ok
[INFO] [stderr]      Running tests/test_remove_command.rs (/opt/rustwide/target/debug/deps/test_remove_command-dcb89093cec7c478)
[INFO] [stdout] test test_done_recurring_next_does_not_inherit_deps ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_remove_from_empty_storage_fails ... ok
[INFO] [stdout] test test_remove_id_zero_fails ... ok
[INFO] [stdout] test test_remove_id_out_of_range_fails ... ok
[INFO] [stdout] test test_remove_last_task ... ok
[INFO] [stdout] test test_remove_correct_task_by_text ... ok
[INFO] [stdout] test test_remove_all_tasks_one_by_one ... ok
[INFO] [stdout] test test_remove_first_task ... ok
[INFO] [stdout] test test_remove_single_task ... ok
[INFO] [stdout] test test_remove_with_yes_flag_skips_confirmation ... ok
[INFO] [stdout] test test_remove_reduces_task_count ... ok
[INFO] [stdout] test test_remove_middle_task ... ok
[INFO] [stdout] test test_remove_preserves_task_metadata ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_resource_command.rs (/opt/rustwide/target/debug/deps/test_resource_command-520e3f0800811617)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test test_resource_add_simple ... ok
[INFO] [stdout] test test_resource_edit_clear_url ... ok
[INFO] [stdout] test test_resource_add_multiple ... ok
[INFO] [stdout] test test_resource_edit_remove_tags ... ok
[INFO] [stdout] test test_resource_clear_empty_is_ok ... ok
[INFO] [stdout] test test_resource_edit_title ... ok
[INFO] [stdout] test test_resource_edit_add_tags ... ok
[INFO] [stdout] test test_resource_edit_clear_tags ... ok
[INFO] [stdout] test test_resource_clear_removes_all ... ok
[INFO] [stdout] test test_resource_add_with_all_metadata ... ok
[INFO] [stdout] test test_resource_edit_clear_description ... ok
[INFO] [stdout] test test_resource_clear_cleans_note_links ... ok
[INFO] [stdout] test test_resource_edit_invalid_id_fails ... ok
[INFO] [stdout] test test_resource_edit_description ... ok
[INFO] [stdout] test test_resource_edit_url ... ok
[INFO] [stdout] test test_resource_edit_clear_type ... ok
[INFO] [stdout] test test_resource_edit_type ... ok
[INFO] [stdout] test test_resource_list_filter_by_type ... ok
[INFO] [stdout] test test_resource_list_filter_by_tag ... ok
[INFO] [stdout] test test_resource_remove_clears_note_resource_ids ... ok
[INFO] [stdout] test test_resource_remove_does_not_affect_others ... ok
[INFO] [stdout] test test_resource_remove_invalid_id_fails ... ok
[INFO] [stdout] test test_resource_remove_soft_deletes ... ok
[INFO] [stdout] test test_resource_show_invalid_id_fails ... ok
[INFO] [stdout] test test_resource_remove_valid ... ok
[INFO] [stdout] test test_resource_show_valid_id ... ok
[INFO] [stdout] test test_resource_show_out_of_range_fails ... ok
[INFO] [stdout] test test_resource_list_all ... ok
[INFO] [stdout] test test_resource_list_empty_is_ok ... ok
[INFO] [stdout] test test_resource_edit_no_changes_is_ok ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_search_command.rs (/opt/rustwide/target/debug/deps/test_search_command-4d34c7153688f382)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test test_search_empty_storage_fails ... ok
[INFO] [stdout] test test_search_no_results_fails ... ok
[INFO] [stdout] test test_search_tag_filter_no_match_fails ... ok
[INFO] [stdout] test test_search_status_done_no_results_fails ... ok
[INFO] [stdout] test test_search_finds_matching_task ... ok
[INFO] [stdout] test test_search_project_filter_case_insensitive ... ok
[INFO] [stdout] test test_search_partial_match ... ok
[INFO] [stdout] test test_search_case_insensitive ... ok
[INFO] [stdout] test test_search_with_project_filter ... ok
[INFO] [stdout] test test_search_status_done_excludes_pending ... ok
[INFO] [stdout] test test_search_status_pending_excludes_done ... ok
[INFO] [stdout] test test_search_tag_and_project_and_status ... ok
[INFO] [stdout] test test_search_status_all_returns_both ... ok
[INFO] [stdout] test test_search_status_pending_no_results_fails ... ok
[INFO] [stderr]      Running tests/test_undone_command.rs (/opt/rustwide/target/debug/deps/test_undone_command-ab55945b1a3ec268)
[INFO] [stdout] test test_search_with_tag_filter ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_undone_empty_storage_fails ... ok
[INFO] [stdout] test test_undone_id_zero_fails ... ok
[INFO] [stdout] test test_undone_id_out_of_range_fails ... ok
[INFO] [stdout] test test_undone_already_pending_fails ... ok
[INFO] [stdout] test test_undone_reverts_completed_task ... ok
[INFO] [stderr]    Doc-tests rustodo
[INFO] [stdout] test test_undone_allows_redone_after ... ok
[INFO] [stdout] test test_undone_then_done_cycle ... ok
[INFO] [stdout] test test_undone_only_affects_target_task ... ok
[INFO] [stdout] test test_undone_clears_completed_at ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/services/holidays.rs - services::holidays (line 6) - compile ... ok
[INFO] [stdout] test src/models/recurrence.rs - models::recurrence::Recurrence::next_date (line 44) ... ok
[INFO] [stdout] test src/models/project.rs - models::project::Project::resolve_or_create (line 134) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::Task::create_next_recurrence (line 372) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::Task::new (line 118) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::count_by_project (line 424) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::Task (line 23) ... ok
[INFO] [stdout] test src/utils/date_parser.rs - utils::date_parser::parse_date (line 44) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.54s; merged doctests compilation took 1.52s
[INFO] running `Command { std: "docker" "inspect" "b5f92a1b39281672e8a3c67167e8232a27df8f826b74652c453dce2a57a94534", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5f92a1b39281672e8a3c67167e8232a27df8f826b74652c453dce2a57a94534", kill_on_drop: false }`
[INFO] [stdout] b5f92a1b39281672e8a3c67167e8232a27df8f826b74652c453dce2a57a94534
